import { request } from "./index";
import nprogress from "nprogress";
import "nprogress/nprogress.css";
// 请求拦截器的配置
request.interceptors.request.use((config) => {
  nprogress.start();
  return config;
});

// 响应拦截器的配置
request.interceptors.response.use(
  (response) => {
    // console.log(response, "response");
    // 只要进入响应拦截器就关闭进度条
    nprogress.done();
    // 因为请求成功不代表是我们需要的结果，我们需要的结果是后端返回的数据中,code也是200的时候
    if (response.data.code === 200) {
      return response.data.data;
    } else {
      // 如果成功响应的结果不是我们想要的，我们需要响应一个失败的promise实例，供请求的地方处理
      //因为所有的错误对象都有一个message的属性,为了方便统一处理,我们抛出错误的时候也把错误包装成一个对象,内部有message属性
      return Promise.reject({ message: response.data.message });
    }
  },
  (error) => {
    nprogress.done();
    return Promise.reject(error);
  }
);

export default request;
